package com.aaa.tars.service;

import com.aaa.tars.entity.Pay;
import com.aaa.tars.util.Page;
import com.github.pagehelper.PageInfo;

import java.util.Map;

/**
 * @FileName: PayService
 * @Description: 支付服务接口，提供支付相关的增删改查操作
 * @Author: ghz
 * @CreateTime: 2025/9/11 14:54
 * @Version: 1.0.0
 */
public interface PayService {
    Pay getByOrderNo(String orderNo);

    /**
     * 插入支付记录
     * @param pay 支付对象
     * @return 影响的行数
     */
    int insert(Pay pay);
    
    /**
     * 更新支付记录
     * @param pay 支付对象
     * @return 影响的行数
     */
    int update(Pay pay);
    
    /**
     * 根据ID删除支付记录
     * @param payId 支付ID
     * @return 影响的行数
     */
    int deleteById(Integer payId);
    
    /**
     * 根据ID查询支付记录
     * @param payId 支付ID
     * @return 支付对象
     */
    Pay queryById(Integer payId);
    
    /**
     * 分页查询支付记录
     * @param page 分页参数
     * @return 分页结果
     */
    PageInfo queryByPage(Page<Pay> page);

    // 新增：创建微信支付预支付单（返回code_url用于生成二维码）
    Map<String, String> createWxPay(Pay pay) throws Exception;

    // 新增：查询支付状态并更新支付记录+订单状态
    String queryWxPayStatus(String orderNo) throws Exception;
}